import { formatDate, getEsSearchFilter, getEsSearchGroup } from './utils/util'

const state = {
  // 上一次点开的监测日志类别
  lastLogType: '',
  // 监测日志类别
  logType: '',
  // 筛选条件 日志类型（中英）
  stypeDict: {},
  // 搜索输入框内容
  searchInput: '',
  // 详情页原生数据
  rawData: {},
  // 详情页处理后数据
  handleData: {},
  // 历史搜索数据
  history: [],
  // 搜索时间
  timeRange: `${formatDate(new Date(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 365 * 2)))} - ${formatDate(new Date())}`,
  // 时间选择器时间区间
  dayRange: [new Date(new Date().setTime(new Date().getTime() - 3600 * 1000 * 24 * 365 * 2)), new Date()],
  // 标签聚合checkbox选择状态
  choose: [],
  // 标签聚合详情数据
  groupPicData: [],
  // 聚合详情下载es语句
  searchLine: {},
  // 分页信息
  pagination: {
    total: 0,
    currentPage: 0,
    pageSize: 20
  },
  // 主列表数据
  tableData: [],
  // 省市区（县）级联列表
  location: [],
  // 筛选条件 对话框 穿梭框左侧数据
  transferLeft: [],
  // 筛选条件类别(可修改)
  filterData: { 'website': null },
  // 筛选条件类别副本(原生数据)
  filterDataCopy: {},
  // 标签聚合表格数据
  groupData: [],
  // 详情页 监测信息
  detailInfo: {},
  // 筛选条件
  filterCategory: [
    {
      key: '',
      // 条件名称
      cn_name: '日志类型',
      // esKey需要与后端获取筛选条件接口的条件名称一致
      esKey: 'stype',
      // 此函数的第二个参数需要与对应的es字段名称一致
      esSearch: getEsSearchFilter('normal', 'stype'),
      groupKey: 'groupData',
      // 控制页面"更多"的显示与隐藏
      moreVisibleCtrl: true
    },
    {
      key: '',
      cn_name: '所属区域',
      esKey: 'log_area',
      esSearch: getEsSearchFilter('normal', 'sys_info.belong_area'),
      groupKey: 'groupData',
      moreVisibleCtrl: false
    },
    {
      key: '',
      cn_name: '所属机构',
      esKey: 'affiliation',
      esSearch: getEsSearchFilter('normal', 'sys_info.unit'),
      groupKey: 'groupData',
      moreVisibleCtrl: true
    },
    {
      key: '',
      cn_name: '系统名称',
      esKey: 'sysname',
      esSearch: getEsSearchFilter('normal', 'sys_info.name'),
      groupKey: 'groupData',
      moreVisibleCtrl: true
    },
    {
      key: '',
      cn_name: '严重级别',
      esKey: 'level',
      esSearch: getEsSearchFilter('normal', 'level'),
      groupKey: 'groupData',
      moreVisibleCtrl: false
    }
  ],
  // 聚合类别
  groupCategory: [
    {
      key: 'stype',
      cn_name: '日志类型',
      groupKey: 'groupData',
      type: 'normal',
      groupSearch: getEsSearchGroup('normal', 'stype'),
      moreVisibleCtrl: false
    },
    {
      key: 'sys_info.name',
      // 聚合类别名称
      cn_name: '系统名称',
      groupKey: 'groupData',
      type: 'normal',
      // 第二个参数需要与key的value值相同,同时要对应es字段
      groupSearch: getEsSearchGroup('normal', 'sys_info.name'),
      moreVisibleCtrl: false
    },
    {
      key: 'sys_info.belong_area',
      cn_name: '所属区域',
      groupKey: 'groupData',
      type: 'normal',
      groupSearch: getEsSearchGroup('normal', 'sys_info.belong_area'),
      moreVisibleCtrl: false
    },
    {
      key: 'sys_info.unit',
      cn_name: '所属机构',
      groupKey: 'groupData',
      type: 'normal',
      groupSearch: getEsSearchGroup('normal', 'sys_info.unit'),
      moreVisibleCtrl: false
    }
  ],
  // 加载状态
  loadingCtrl: {
    // 主table等待
    isTableLoading: false,
    // 聚合等待
    isGroupLoading: false,
    // 聚合详情等待
    isGroupDetailLoading: false,
    // 详情告警等待
    isAlertLoading: false,
    // 筛选条件
    isFilterGroupLoading: false
  }
}

export default state
